package com.ruoyi.system.service.impl;

import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.WaterQualityDataMapper;
import com.ruoyi.system.domain.WaterQualityData;
import com.ruoyi.system.service.IWaterQualityDataService;

/**
 * 水质数据Service业务层处理
 * 
 */
@Service
public class WaterQualityDataServiceImpl implements IWaterQualityDataService 
{
    @Autowired
    private WaterQualityDataMapper waterQualityDataMapper;

    /**
     * 查询水质数据列表
     * 
     * @param waterQualityData 水质数据
     * @return 水质数据
     */
    @Override
    public List<WaterQualityData> selectWaterQualityDataList(WaterQualityData waterQualityData)
    {
        return waterQualityDataMapper.selectWaterQualityDataList(waterQualityData);
    }
    
    /**
     * 根据监测点ID查询水质数据
     * 
     * @param pointId 监测点ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 水质数据集合
     */
    @Override
    public List<WaterQualityData> selectWaterQualityDataByPointId(Long pointId, String startTime, String endTime)
    {
        return waterQualityDataMapper.selectWaterQualityDataByPointId(pointId, startTime, endTime);
    }
    
    /**
     * 查询所有监测点的水质数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 水质数据集合
     */
    @Override
    public List<WaterQualityData> selectAllWaterQualityData(String startTime, String endTime)
    {
        return waterQualityDataMapper.selectAllWaterQualityData(startTime, endTime);
    }
    
    /**
     * 查询各监测点最新的水质数据
     * 
     * @return 水质数据集合
     */
    @Override
    public List<WaterQualityData> selectLatestWaterQualityData()
    {
        return waterQualityDataMapper.selectLatestWaterQualityData();
    }
    
    /**
     * 查询水质指标的时间变化数据
     * 
     * @param pointId 监测点ID，可为null表示查询所有监测点
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 时间和水质指标值的映射集合
     */
    @Override
    public List<Map<String, Object>> selectWaterQualityTimeData(Long pointId, String startTime, String endTime)
    {
        return waterQualityDataMapper.selectWaterQualityTimeData(pointId, startTime, endTime);
    }
    
    /**
     * 查询不同水体的污染程度对比数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 监测点和水质指标值的映射集合
     */
    @Override
    public List<Map<String, Object>> selectWaterQualityComparisonData(String startTime, String endTime)
    {
        return waterQualityDataMapper.selectWaterQualityComparisonData(startTime, endTime);
    }
}